package com.zyg.cart.controller;

import com.zyg.cart.client.ManagerClient;
import com.zyg.cart.enttiy.ItemEntity;
import com.zyg.cart.enttiy.group.Cart;
import com.zyg.cart.service.CartService;
import com.zyg.common.utils.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * ------------------------------
 * 作者: LMY
 * 类-功能: XX
 * 创建时间: 2021-11-15 18:01
 * ------------------------------
 **/
@Controller
@RequestMapping
public class CartController {

    @Autowired
    private CartService cartService;
    @Autowired
    private ManagerClient managerClient;

    @GetMapping("cart/test/{id}")
    @ResponseBody
    public R test(@PathVariable("id") Long id){
        ItemEntity itemEntity = managerClient.findById(id);
        return R.ok().put("itemEntity",itemEntity);
    }

    /**
     * 作者 : LMY
     * 功能 : 添加购物车
     * 时间 : 2021/11/15 19:32
     */
    @GetMapping("cart/addCart/{itemId}/{num}")
    public String addCart(@PathVariable("itemId")Long itemId,@PathVariable("num") int num){
        //1. 拿到用户名
        String name = SecurityContextHolder.getContext().getAuthentication().getName();
        cartService.addCart(name,itemId,num);
        //2. 返回结果
        return "redirect:/";
    }

    /**
     * 作者 : LMY
     * 功能 : 进入购物车页面
     * 时间 : 2021/11/16 16:47
     */
    @GetMapping({"/","/cart.html"})
    public String showCart(Model model){
        //1. 拿到用户名
        String name = SecurityContextHolder.getContext().getAuthentication().getName();
        //2. 取出用户对应的购物车
        List<Cart> cartList   = cartService.getCartList(name);
        //3. 将购物车放入model中
        model.addAttribute("cartList",cartList);
        //4. 返回物理视图
        return "cart";
    }




}
